package bancosys.tec.persist.authorization;

import bancosys.tec.persist.Persistable;
import bancosys.tec.persist.persister.Persister;

/**
 * Interface que visa prover a funcionalidade de autorização.
 * 
 * @param <T> o persistível.
 * @author Tulius Lima (Bankware Java Team)
 * @author Alexandre (Bankware Java Team)
 */
public interface Authorizer<T extends Persistable> extends Persister<T> {

    /**
     * Autoriza dados em autorização e os transfere para a base de produção da persistência.
     */
    void authorize();

    /**
     * Rejeita os dados em autorização e os remove da base temporária de autorização.
     */
    void reject();
}